package com.zhongge.customheap;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * @ClassName TestMyHeap
 * @Description TODO 测试自定义堆
 * @Author 笨忠
 * @Date 2025/9/6 10:11
 * @Version 1.0
 */
public class TestMyHeap {
    public static void main(String[] args) {
        int[] array = {27,15,19,18,28,34,65,49,25,37};
        MyHeap heap = new MyHeap();
        heap.initHeap(array);
        heap.createMaxHeap();
        heap.heapSort();
        System.out.println(Arrays.toString(heap.getElem()));
    }
    public static void main1(String[] args) {
        int[] array = {27,15,19,18,28,34,65,49,25,37};
        MyHeap heap = new MyHeap();
//        //那么每次以大根堆的形式插入
//        for (int i = 0; i < array.length; i++) {
//            heap.offer(array[i]);
//        }
//        //为什么会不对？==》对的，没问题，是我看错了


        //初始化
        heap.initHeap(array);

        //创建大根堆
        heap.createMaxHeap();
        //我们测试一下 获取队头元素
        System.out.println(heap.peek());//经过调试没有问题

        //删除堆顶元素
//        System.out.println(heap.poll());//经过调试没有问题；
        //插入80 后的结果
        //heap.offer(80);
        //出现了问题了：我们需要认真调试一下
        //找到问题了：
        /**
         * 我们的交换函数由于是值传递 而不是地址传递，所以没有交换成功，解决：就是我们得时候创下标
         */

        /**
         * OK 老铁们 欢迎回来 那么由于教室有人 所以我只能不说话了
         * 那么有什么问题 看我打字就好了
         * 那么 本节课 我们一起来学习 优先级队列的 出队 ==》删除大根堆
         *
         * 我们首先来测试一下：是否将大根堆删除成功
         */

    }
}
